The present invention relates in general to data processing systems and in particular to data processing systems that allow end users to interactively view various aspects of data stored in the data processing systems.
Conventional relational databases are well-known and data collected in support of large enterprises is often collected into relational databases. For example, an enterprise with a sales operation might store all of their data relating to sales transactions in a relational database. A relational database structure defines the tables making up the relational database, along with definitions for the rows and columns of the tables and the relations between tables.
For example, a relational sales database might have an invoice table and a customer table. The invoice table might have columns for invoice number, customer number, salesperson, sales date, shipping date, etc., with one row per xe2x80x9cinstancexe2x80x9d in the table. In this example, an instance is an invoice. The customer table might have one row per unique customer, and columns for customer number, customer name, address, credit limit, etc. As for the relations between tables, the relational sales database might relate customer number in the invoice table with customer number in the customer table.
Such relational structures are well-known and several methods of navigating large relational databases are known. For example, a user at a relational database client might formulate a Structured Query Language (xe2x80x9cSQLxe2x80x9d) statement and submit that SQL statement to a relational database server. The relational database server would respond to the submission with a table of results that matched the SQL statement. For example, a user might request a list of invoices for a given day, listing the customer, the salesperson and the amount for each such invoice. The list might be informative if the enterprise only makes a few sales per day, but is less likely to be informative if the enterprise makes thousands of sales per day.
To provide knowledge workers with informative views of an enterprise""s data, analytical systems are often employed. One example of an analytical system is a data warehouse. A data warehouse contains much the same data as the relational database, but in a much different form. As should be apparent with the examples used above, adding one more invoices to the relational database could be as simple as adding a record with the invoice pertinent data to the invoice table.
For this reason, large relational databases used in this way are often referred to as online transaction processing (xe2x80x9cOLTPxe2x80x9d) systems. By contrast, the data warehouse stores data in aggregate, to allow for high-level analysis of the data. The data is aggregated according to multiple criteria, to provide access to data and aggregations much faster than if the same information were obtained from a relational database system.
Such systems of aggregated data are often referred to as online analytical processing (xe2x80x9cOLAPxe2x80x9d) systems. In a typical enterprise, the data warehouse is populated and updated periodically from the OLTP data. The updating process might, for example, provide invoice totals and other data extracted from the OLTP data to the OLAP data structures on a once-daily update. Using an OLAP system, a user might request a chart of the sales by geographic region broken down by month for a year""s worth of data.
If such a request were to be made of the OLTP data structures, a server responding to that request would have to scan all the records in several tables to come up with totals for the chart. With one request, the scan might be easy, but when many, many requests are being made, it is more efficient to make those requests of an OLAP system, since the results for the chart can be obtained by taking the appropriate slice of data from the OLAP data structures. Sometimes, an OLAP data system is represented as a multi-dimensional data structure and each OLAP query is simply a xe2x80x9cslicexe2x80x9d through this multi-dimensional data structure.
In one common analytical application, a user is presented with a user interface at an OLAP client and uses that OLAP client to xe2x80x9cnavigatexe2x80x9d a set of xe2x80x9ccubesxe2x80x9d (the multi-dimensional, or xe2x80x9cMDxe2x80x9d data structure) that were created from the OLTP data structures. Using that OLAP client, the user can navigate the OLAP data using top-down slicing and narrowing mechanisms, looking for points of interest within the information presented. However, since the OLAP data is aggregated data, the user cannot navigate down to individual transactions, if desired.
Another problem with data organized along the OLTP/OLAP lines is that, while relational storage models hold the transactional online data related to everyday operations and MD storage models hold aggregated data used for corporate performance analysis tasks, often information that spans both models is needed.
The user of the data (an end user or an application) is able to query either the relational data or the MD data, but in many cases, the user needs both detailed data from the relational system and related aggregated data from the MD system. For a real-time response, the user would have to access the relational database in real-time and also request that needed aggregations be created in real time.
The creation of these aggregations in real-time would consume large amounts of computing resources and, in many cases, their creation is computationally infeasible. The user could, instead, access the MD system to retrieve pre-calculated aggregations, but then the user would have the aggregated data but not the detailed data.
A first aspect of the present invention allows for navigation across OLAP and OLTP data structures with a common interface.
For example, a user interface might present a user with draggable user interface elements and drop target elements, where such elements are icons, or the like, and each represent an OLAP element or an OLTP element. In response to the user dragging and dropping, the client generates a query. If both the dragged element and the drop target element are OLAP elements, the client generates an OLAP query.
If both the dragged element and the drop target element are OLTP elements, the client generates an OLTP query. However, if the dragged element is an OLAP element and the drop target element is an OLTP element, or vice versa, the client calls an association server to resolve an association between the elements so that a query can be formulated for an OLAP server and/or an OLTP server.
For example, if an OLAP element is dragged and dropped on an OLTP element, the client queries an association server, or more specifically a dimension-to-domain server (DDS), which responds with an association of the OLAP element to suitable OLTP elements to allow an OLTP query to be generated where a response to such an OLTP query would appear to the user to be responsive to the drag and drop operation.
According to another aspect of the present invention, the DDS comprises translation tables and metadata repositories. Using that information, the DDS can resolve a request for information that spans a relational (OLTP) space and a multi-dimensional (OLAP) space. For example, the DDS can map a given domain and values in that domain in a relational space to dimensions of a cube in a multi-dimensional (MD) space. Given a specific record (or key) in a file, the DDS can map to a list of values onto each dimension of the specified cube. The DDS might also be used to resolve requests in the other direction, such as mapping list of values in an MD space onto each domain in a specified file in a relational space.
In another aspect of the present invention, a distributed query can be processed wherein the distributed query is a query distributed over a relational model and an MD model.